import { ColDef, ICellRendererParams } from '@ag-grid-community/core'

/** columnDefs 配置项 */
export type TCol<T extends keyof ITplRouteListItem = keyof ITplRouteListItem> = ColDef<
  ITplRouteListItem,
  ITplRouteListItem[T]
> & { field: T }

/** cellRendererParams */
export type TCellParams<T extends keyof ITplRouteListItem = keyof ITplRouteListItem> = ICellRendererParams<
  ITplRouteListItem,
  ITplRouteListItem[T]
>

/** 路由模板列表请求入参 */
export interface ITplRouteListReq {
  /** 中文模板 */
  templateCn: string | undefined
  /** 路由节点 */
  routeNode: number | undefined
  /** 物流状态 */
  logisticsStatus: number | undefined
  page: number
  size: number
}

/** 路由模板列表请求响应项 */
export interface ITplRouteListItem {
  /** 路由模板ID（唯一标识） */
  routeId: string
  /** 路由编号 */
  routeNo: string | null
  /** 中文模板（第一行标题，其它行描述） */
  templateCn: string | null
  /** 英文模板（第一行标题，其它行描述） */
  templateEn: string | null
  /** 第一个动态字段别名 */
  dynamicField: string | null
  /** 动态字段别名集合 */
  dynamicFieldList: string[] | null
  /** 路由节点，0.国内仓 1.起运港拖车 2.起运港 3.干线运输 4.目的港 5.目的港拖车 6.海外仓 7.尾程派送 8.目的地 */
  routeNode: number | null
  /** 物流状态，0.待发货 1.报关中 2.运输中 3.清关中 4.中转中 5.派送中 6.已签收 */
  logisticsStatus: number | null
  /** 路由类型，1.正常 2.异常 */
  routeType: number
  /** 需跟进，0.否 1.是 */
  actionFlag: number
  /** 客户可见，0.否 1.是 */
  visibleFlag: number
}

/** 路由模板列表请求响应 */
export interface ITplRouteListRes {
  total: number
  records: ITplRouteListItem[]
}
